9 - Verteilte Systeme [ID:11011]
50 von 301 angezeigt

Also, hallo und willkommen heute zum letzten, ja zweiten Teil vom Themengebiet

Fehler-tolerante verteilte Systeme oder überhaupt Betrachtung von Fehler-Situationen

in verteilten Systemen und die Basis für das, was wir jetzt in der Woche und auch nächste Woche

uns anschauen wollen, sind eine Reihe von Algorithmen,

ich habe keine Maus, naja egal, eine Reihe von Algorithmen für verteilte Systeme und

letztlich deren formale Beschreibung, die dann eben als Grundlage für Fehler-tolerante Programme

verwendet werden können. Und im Wesentlichen geht es jetzt hier um folgende Themen, also erstmal

werden wir noch mal ein paar Grundbegriffe betrachten, also die Grundbegriffe, die genutzt

werden, um eben solche Algorithmen zu beschreiben. Solche Sachen wie Prozesse, Verbindungen, Fehler,

Korrektheit, dann die wesentlichen Grundlagen für die Beschreibung verteilter Algorithmen,

also auch diese Notation, um die es da geht und ja so ein Modernisierungskonzept, wo in dem eben

einzelne Komponenten über Ereignisse letztendlich miteinander kommunizieren. Ganz kurz noch mal ein

paar Worte zum Zeitbegriff und Raumzeitbegriff an der Stelle und wie das notiert wird. Und dann

geht es um ein paar grundlegende Systemeigenschaften, die dann auch die Grundlagen für die weiteren

Algorithmen sind. Also einfach mal um die Eigenschaften von Punkt-zu-Punkt-Verbindung,

weil die Kommunikation, also eine grundlegende Art der Kommunikation sind Punkt-zu-Punkt-Verbindungen

und auf der Basis von solchen Punkt-zu-Punkt-Verbindungen kann man natürlich dann beliebig

komplexe Arten der Interaktion dann aufbauen, also eben Multicast, Broadcast und so weiter.

Ein paar Worte noch mal zu den Begriffen Synchrone und Asynchronesysteme und man muss

es noch mal ein bisschen mehr präzisieren. Wir haben darüber schon immer wieder mal gesprochen,

über Synchrone Kommunikation, Asynchrone Kommunikation, aber das letztendlich dann doch

immer ein bisschen vage betrachtet und das müssen wir uns noch mal ein bisschen genauer

anschauen. Und dann geht es um einige Basisabstraktionen im verteilten System, also zum Beispiel Ausfallerkennung,

Wahl eines Anführers und dann eben um komplexere Kommunikationsmechanismen wie vor allem Multicast,

zuverlässige Multicasts, Ordnung von Nachrichten in der Multicast und das ist dann auch die Basis

für das, was wir jetzt dann in den Übungen ab dieser Woche im Endeffekt dann in der fünften

Aufgabe ist, glaube ich, dann machen werden. So, noch mal so ein paar grundlegende Begriffe

bei diesen verteilten Systemen. Interagieren ja irgendwelche Einheiten, Entities miteinander

und diese Einheiten nennen wir jetzt in dem Kontext, in dem es jetzt hier geht, im weiteren

Prozesse. Das sind, hinter so einem Prozess kann sich jetzt also ein ganzer Knoten verbergen,

also ein Knoten im verteilten System, das kann ein Rechner sein, das kann ein einzelner

Prozessor sein, das kann auch natürlich tatsächlich das, was wir im landläufigen Kontext von

Unix oder sowas als Prozess betrachten sein. Eine weitere Unterscheidung brauchen wir an

dieser Stelle nicht machen, ist das letztendlich eine kommunizierende Einheit. Das ist das

Wesentliche und es ist so eine auch aktive Instanz im verteilten System, die eben auch

mit anderen solchen Instanzen durch letztendlich Nachrichten aus dem Tausch miteinander in

Verbindung tritt und irgendwie interagiert. Diese Prozesse, über die wir reden, sind

eindeutig identifizierbar. Sie bekommen eine Nummer irgendwie oder einen Identifikator.

In den Algorithmen, die wir im weiteren beschreiben, sind es häufig solche Buchstaben wie P, Q,

L und S oder sowas. Manchmal wird es in der Literatur dann auch als P1, P2, P3 bezeichnet,

also jedenfalls irgendwie eindeutig identifizierbare Einheiten. In manchen Situationen ist es

wichtig, dass man eine Reihenfolge auf solchen Prozessen definiert und dann ist es also wichtig,

dass man sie irgendwie eben aufsteigend nummeriert, monoton aufsteigend nummeriert. Gut, dann

ist für unser System wichtig, insgesamt der Zustand. Wenn man den globalen Zustand in

unserem verteilten System betrachtet, dann ist es letztendlich, also der globale Zustand

besteht letztendlich aus dem verteilten Zustand im System und man kann ihn letztendlich als

Vektor S bezeichnen mit den Zuständen S1 bis Sn, der n im System vorhandenen. Prozesse

kann man jetzt auch sagen, weil ja die Einheiten, über die wir reden, eben Prozesse sind. Und

ein Schritt im Ablauf in unserem System ist letztendlich der atomare Übergang von einem

Zustand in den Folgezustand. Das werden wir dann irgendwann später noch brauchen. So,

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

00:35:48 Min

Aufnahmedatum

2012-06-25

Hochgeladen am

2019-05-08 05:39:02

Sprache

de-DE

  • Übersicht und Grundlagen verteilter Systeme
  • Verteilte Programmierung, Client/Server-Konzept

  • Kommunikation, Prozesse, Namensgebung

  • Koordinierung, Konsistenzwahrung

  • Grundlagen verteilter Algorithmen

  • Zeit in verteilten Systemen (logische Uhren, NTP)

  • Java, weiterführende Konzepte (z.B. Threads, Reflections)

  • Sun RPC, Java RMI

  • Dynamische Erzeugung von Proxies, Callback

Lernziele und Kompetenzen:

Die Studierenden

  • erwerben fundierte Kenntnisse über Grundlagen von verteilten Systemen

  • verstehen Zusammenhänge, die die verteilte Ausführung von Programmen in vernetzten Rechensystemen ermöglichen

  • erlernen die verteilte Programmierung in Java

  • entwickeln eine Middleware-Plattform zur Ausführung verteilter Programme

Einbetten
Wordpress FAU Plugin
iFrame
Teilen